Remote commands
https://www.zabbix.com/documentation/6.0/en/manual/config/notifications/action/operation/remote_command
官網說明:
應用遠端命令(Remote commands),您可以定義在某種條件下在受監控主機上自動執行某個預定義命令。
遠端命令是智慧主動監控的強大機制。
在該功能最明顯的用途中,您可以嘗試:
所以發生事件時Zabbix Server除了發送訊通知,也可以使用遠端執行預先定義的指令執行操作。
Agent Remote commands設定
在zabbix_agent2.conf設定檔加入AllowKey=system.run[*]
在zabbix_prxoy.conf設定檔加入EnableRemoteCommands=1
# vi /etc/zabbix/zabbix_agent2.conf
---
AllowKey=system.run[*]
Plugins.SystemRun.LogRemoteCommands=1
---
Plugins.SystemRun.LogRemoteCommands=1,將遠端執行指令紀錄在zabbix_agent2.log
帳號存取權限
讓zabbix帳號可以使用sudo來存取特權命令。若要設定存取權限,可以不輸入密碼以root執行。
如果無法執行visudo,請先安裝sudo套件。
# visudo
---
# 1.zabbix 不需輸入密碼執行所有commands。
zabbix ALL=NOPASSWD: ALL
# 2.zabbix 不需輸入密碼執行重啟apache2
zabbix ALL=NOPASSWD: /etc/init.d/apache2 restart
---
如果沒有固定的執行的指令,使用第1個設定方式。如果知道固定執行的指令,請使用第2個設定方式。在資安方面會有較大保障。
Scripts設定
Scripts可以使用webhook、script、SSH、Telnet、IPMI,預先定義執行項目。
在Administration > Scripts,右上方Create script新增
新增使用Script-agent df,透過Zabbix agent執行commands,檢查硬碟空間。
在commands寫入df -h > /tmp/dh-agent.txt,讓zabbix 使用df -h檢查硬碟空間。
在commands寫入sudo df -h > /tmp/dh-agent2.txt,讓bzabbix 使用sudo df -h檢查硬碟空間。
新增使用Script-ssh df,使用密碼認證,設定帳號及密碼,透過SSH執行commands,檢查硬碟空間。
在commands寫入sudo df -h > /tmp/dh-ssh.txt,讓bee01使用sudo df -h檢查硬碟空間。
新增使用Script-Restart Apache2 init,透過Zabbix agent執行commands,重啟apache2 。
在commands寫入sudo /etc/init.d/apache2 restart,讓zabbix使用sudo重啟apache2。
Trigger actions設定
在Configuration> Actions> Trigger actions,右上方Create action新增。
Actions
Name:Trigger severity Actions Escalations remotecommand
Type of calculation:A or B or C ,只有ABC有一個發生。
Conditions
A 觸發嚴重性大於或等於災難
B 觸發嚴重性大於或等於高
C 觸發嚴重性大於或等於警告
Operations
Steps:1 Send message to user groups: it via Line Notify
步驟1 當事件發生時,使用Line notify自定訊息通知it群組。
Steps:1 Run script "agent df" on hosts: d11-agent2
步驟1 當事件發生時,在遠端主機d11執行Script-agent df。
Steps:2 Run script "ssh df" on hosts: d11-agent2
步驟2 當事件持續發生,在遠端主機d11執行Script-ssh df。
Steps:3 Run script "Restart Apache2 init" on hosts: dnode01
步驟3 當事件持續發生,在遠端主機dnode01執行Script-Restart Apache2 init。
Default operation step duration:1m
步驟時間為預設的1m (1分鐘)
遠端主機d11
zabbix_agent2.log收到執行指令
/tmp查看生成的檔案,agent df的2個指令都有成功生成檔案,ssh df沒有成功權限可能要再調整。
遠端主機dnode01
zabbix_agent2.log收到執行指令
成功重啟apache。
簡單的測試驗證
內容為學習過程如有問題,請多多指教,謝謝。
文章也同步於個人網站